package jeecg.mongodb.system;

import java.util.Iterator;
import java.util.Map;
import java.util.Set;

import net.sf.cglib.beans.BeanGenerator;
import net.sf.cglib.beans.BeanMap;

public class DynamicBean {
	private Object object=null;//动态生成的类
	
	private BeanMap beanMap=null;//存放属性名称以及属性的类型
	
	public DynamicBean(){
		super();
	}
	
	public DynamicBean(Map propertyMap){
		this.object = generateBean(propertyMap);
		this.beanMap = BeanMap.create(this.object);
	}
	/**
	 * 给bean属性赋值
	 * */
	public void setValue(Object property,Object value){
		 beanMap.put(property, value);
	}
	
	/**
	 * 通过属性名得到属性值
	 * */
	public Object getValue(String property){
		return beanMap.get(property);
	}
	
	/**
	 * 获取实体bean对象
	 * */
	public Object getObject(){
		return this.object;
	}
	
	private Object generateBean(Map propertyMap){
		BeanGenerator generator=new BeanGenerator();
		Set keySet=propertyMap.keySet();
		for(Iterator i=keySet.iterator();i.hasNext();){
			String key=(String)i.next();
			generator.addProperty(key,(Class)propertyMap.get(key));
		}
		return generator.create();
	}
	
}
